Automated device configuration and management is one of many areas of software development that has experienced large amounts of growth in recent years. Such configuration technology can be applied to many devices or systems such as cell phones, laptops, or other portable computer devices that can be configured for various functional requirements from remote server systems. In some cases, a configuration manager controls software distribution and asset management inventory in a multi-platform environment. It can be designed for configuration, distribution, change, version, and asset management in a distributed computing environment or mobile device network. In general, the configuration manager provides an integrated solution for managing complex and distributed enterprise environments.
With a configuration manager or other automated configuration software, package software elements for devices can be readied for distribution and installation in the respective devices. This may include maintaining an integrated inventory database to determine targets for software distribution such as determining whether or not devices are at the latest software revision level. Configuration can include creating an automated workflow for an installation process or submitting and monitoring distribution workflows across an enterprise. Another configuration aspect includes updating reference databases to ensure continued compliance with newer software releases. This may include more complicated procedures such as managing an enterprise environment across firewalls without impacting enterprise security. This also enables extending the scope of a managed network to include pervasive devices, such as personal digital assistants (PDAs) and intelligent phones, for example, by automatically distributing and managing security patches, software updates, or other updated components to the devices as needed.
In general, software configurations are first developed for a set of devices. In some case, after creating software packages for the configurations, an administrator may produce a software package profile. The administrator may then assign subscribers to the profile, associating the software package profile contained in a profile manager. A file such as a resource group can be created to contain a set of target devices for configuration. The administrator generally also creates a profile to be distributed to a resource group such as for PDA devices and assigns the resource group as the subscriber to the profile. The administrator may also import software package blocks into a software package profile. When the import is performed, the software package blocks are transferred from endpoints where they were created at the configuration server. When, the database on the server is updated with the new software package information, the administrator then distributes the software packages through the network to device endpoints. A software distribution component distributes the software packages from a source host through a repeater hierarchy to gateways, for example, then from the gateways to the respective device endpoints.
Another function of software distribution components is to check endpoints for status information and to transmit configuration results back through the network, on a reverse path, to the configuration server. Status of the software packages on each endpoint can be updated in a configuration repository in some systems. The administrator can then verify that the software packages are correctly installed by checking software distribution log files or a configuration manager database. For device management, various objects that can be managed are often represented using a tree hierarchy that can be addressed via Uniform Resource Identifiers (URIs). Generally, the configuration server requests that operations (e.g., add, copy, update) are performed on a particular node in a device management tree. One obvious way to implement this type update is to have a 1:1 correspondence between an abstract device manager configuration tree and an underlying data store. However, this 1:1 scheme lacks flexibility and may not always be possible to deploy configurations to devices that may have a plurality of differing tree structures from the device manager.